package com.stary.beetlsql.generator.config;

import java.util.Map;

import com.stary.beetlsql.generator.config.rules.DBType;

/**
 * <p>表数据查询接口</p>
 * @author stary {@link stary1993@qq.com}
 * @since 2019-8-5
 */
public interface IDbQuery {


    /**
     * 数据库类型
     */
    DBType dbType();

    /**
     * 表信息查询 SQL
     */
    String tablesSql(String tableName);

    /**
     * 表字段信息查询 SQL
     */
    String tableFieldsSql(String tableName, String colName);

    /**
     * 表名称
     */
    String tableName();

    /**
     * 表注释
     */
    String tableComment();

    /**
     * 字段名称
     */
    String fieldName();

    /**
     * 字段类型
     */
    String fieldType();

    /**
     * 字段注释
     */
    String fieldComment();

    /**
     * 主键字段
     */
    String fieldKey();

    /**
     * <p>判断主键是否为identity，目前仅对mysql进行检查</p>
     * @param results
     * @return 主键是否为identity
     */
    boolean isKeyIdentity(Map<?,?> results);

}
